package com.example.sihookuiklydemo

import com.example.myapplication.base.NavBar
import com.example.sihookuiklydemo.base.BasePager
import com.example.sihookuiklydemo.base.BridgeModule
import com.example.sihookuiklydemo.ble.getNewFloatPx
import com.tencent.kuikly.core.annotations.Page
import com.tencent.kuikly.core.base.Color
import com.tencent.kuikly.core.base.ViewBuilder
import com.tencent.kuikly.core.directives.vfor
import com.tencent.kuikly.core.log.KLog
import com.tencent.kuikly.core.manager.PagerManager
import com.tencent.kuikly.core.module.RouterModule
import com.tencent.kuikly.core.reactive.handler.observableList
import com.tencent.kuikly.core.views.List

import com.tencent.kuikly.core.views.Text
import com.tencent.kuikly.core.views.View

@Page("Issue")
internal class IssuePage : BasePager() {
    private var listIssues by observableList<IssueBean>()
    override fun body(): ViewBuilder {
        val ctx = this
        return {
            NavBar {
                attr {
                    title = ctx.titleName ?: "故障说明"

                    rightIconShow = false
                    isDarkMode = ctx.isNightMode()
                }
                event {
                    onClick {

                        ctx.acquireModule<RouterModule>(RouterModule.MODULE_NAME).closePage()

                    }

                }
            }
            attr {
                backgroundColor(ctx.theme.colors.background)
            }
            View {
                attr {
                    height(getNewFloatPx(44f))
                    flexDirectionRow()
                    alignItemsCenter()
                    justifyContentSpaceEvenly()

                    backgroundColor(ctx.theme.colors.grey_1)
                }

                Text {
                    attr {
                        flex(1f)
                        textAlignCenter()
                        text(ctx.getLanguage("desk_issus_code", "错误代码"))
                        useDpFontSizeDim(true)
                        color(ctx.theme.colors.mainTextColor)
                        fontSize(getNewFloatPx(14f))
                    }
                }
                Text {
                    attr {
                        flex(2f)
                        fontSize(getNewFloatPx(14f))
                        text(ctx.getLanguage("desk_issue", "故障说明"))
                        color(ctx.theme.colors.mainTextColor)
                        useDpFontSizeDim(true)
                    }
                }
                Text {
                    attr {
                        flex(2f)
                        margin(getNewFloatPx(16f))

                        text(ctx.getLanguage("desk_issus_solution", "处理方式"))
                        color(ctx.theme.colors.mainTextColor)
                        fontSize(getNewFloatPx(14f))
                        useDpFontSizeDim(true)
                    }
                }
            }
            List {
                attr {
                    flex(1f)
                }

                vfor({ ctx.listIssues }) { item ->
                    View {
                        View {
                            attr {
                                paddingTop(4f)
                                paddingBottom(4f)
                                minHeight(44f)
                                flexDirectionRow()
                                alignItemsCenter()
                                justifyContentSpaceEvenly()

                                //backgroundColor(Color.parseString16ToLong("0xffE0E2E7"))
                            }

                            Text {
                                attr {
                                    flex(1f)
                                    textAlignCenter()
                                    text("${item.issueCode?:""}")
                                    fontSize(getNewFloatPx(14f))
                                    useDpFontSizeDim(true)
                                    color(ctx.theme.colors.mainTextColor)
                                }

                            }
                            Text {
                                attr {
                                    useDpFontSizeDim(true)
                                    flex(2f)
                                    fontSize(getNewFloatPx(14f))
                                    text("${item.issueDec?:""}")
                                    color(ctx.theme.colors.mainTextColor)
                                }

                            }
                            Text {
                                attr {
                                    flex(2f)
                                    margin(getNewFloatPx(16f))
                                    text("${item.issueReslove?:""}")
                                    color(ctx.theme.colors.mainTextColor)
                                    fontSize(getNewFloatPx(14f))
                                    useDpFontSizeDim(true)
                                }
                            }
                        }
                        View {
                            attr {
                                backgroundColor(ctx.theme.colors.grey_2)
                                height(1f)
                            }
                        }
                    }

                }

            }

        }
    }

    override fun created() {
        super.created()
        getIssuesArray()
    }

    fun getIssuesArray() {
        var listCode = ArrayList<String>()
        listCode.add("E01\\n主电源电压超过45V \\n检查主电源")
        listCode.add("E02\\n丝杆之间高度偏差超过lcm \\n重新初始化")
        listCode.add("E04\\n手控器连接或者通讯错误 \\n检查手控器线")
        listCode.add("E05\\n遇阻停显示 \\n松开按键，重新运行")
        listCode.add("E06\\n主电源启动未成功，低于 20V \\n更换主电源，或者检查主电源连接线")
        listCode.add("E07\\n主电源运行的时候保护，低于20V \\n重新上电")
        listCode.add("E08 \\n桌面运行的时候倾斜 \\n重新初始化")
        listCode.add("HOT \\n电源温度过高，或者 18 分钟内运行超过2分钟 \\n等待电源温度降低，或者让系统休息 18 分钟重新运行")
        listCode.add("E11 \\n电机 1 未连接 \\n检查连接线")
        listCode.add("E12 \\n电机 1 电流采样通道出错 \\n更换控制盒")
        listCode.add("E13 \\n电机 1 缺相，有相线断开 \\n检查电机是否相线连接不正常")
        listCode.add("E14 \\n电机 1 霍尔错误，或霍尔线断开 \\n检查霍尔信号，或者更换连接线")
        listCode.add("E15 \\n电机 1 内部短路 \\n更换电机")
        listCode.add("E16 \\n电机 1 堵转 \\n重新初始化")
        listCode.add("E17 \\n电机 1 运转方向错误 \\n调换电机线或者霍尔线")
        listCode.add("E18 \\n电机 1 负载太大，过载 \\n减少负载")
        listCode.add("E21 \\n电机 2 未连接 \\n检查电机连接线")
        listCode.add("E22 \\n电机 2 电流采样通道出错 \\n更换控制盒")
        listCode.add("E23 \\n电机 2 缺相，有相线断开 \\n检查电机是否相线连接不正常")
        listCode.add("E24 \\n电机 2 霍尔错误，或霍尔线断开 \\n检查霍尔信号，或者更换连接线")
        listCode.add("E25 \\n电机 2 内部短路 \\n更换电机")
        listCode.add("E26 \\n电机 2 堵转 \\n重新初始化")
        listCode.add("E27 \\n电机 2 运转方向错误 \\n调换电机线或者霍尔线")
        listCode.add("E28 \\n电机 2 负载太大\\n减少负载")
        listCode.add("E40 \\n串联有控制器掉线 \\n检查连接线")
        listCode.add("E41 \\n串联信号有错误 \\n检查连接线，或者更换控制器")
        listCode.add("E42 \\n存储器错误 \\n更换控制器")
        listCode.add("E43 \\n遇阻停传感器错误 \\n更换控制器")
        var trans = getIssuesTrans()
        listCode.forEachIndexed { index, localString ->
            var showText = trans.getOrNull(index) ?: localString
            var array = showText.split("\\n")
            listIssues.add(IssueBean(array.getOrNull(0), array.getOrNull(1), array.getOrNull(2)))
        }
    }

    fun getIssuesTrans(): ArrayList<String> {
        var listCode = ArrayList<String>()
        var transKey = arrayOf(
            "desk_issus_1",
            "desk_issus_2",
            "desk_issus_4",
            "desk_issus_5",
            "desk_issus_6",
            "desk_issus_7",
            "desk_issus_8",
            "desk_issus_hot",
            "desk_issus_11",
            "desk_issus_12",
            "desk_issus_13",
            "desk_issus_14",
            "desk_issus_15",
            "desk_issus_16",
            "desk_issus_17",
            "desk_issus_18",
            "desk_issus_21",
            "desk_issus_22",
            "desk_issus_23",
            "desk_issus_24",
            "desk_issus_25",
            "desk_issus_26",
            "desk_issus_27",
            "desk_issus_28",
            "desk_issus_40",
            "desk_issus_41",
            "desk_issus_42",
            "desk_issus_43"
        )
        transKey?.forEach {
            listCode.add(getLanguage(it, ""))
        }
        return listCode
    }

    data class IssueBean(val issueCode: String?, val issueDec: String?, val issueReslove: String?)
}